home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / forthcmp.zip / INDEX.4TH < prev    next >
Text File  |  1992-03-30  |  2KB  |  66 lines

  1. \ FORTH SCREEN FILE INDEX PROGRAM
  2. \ COPYRIGHT (C) 1985 BY THOMAS ALMY
  3. \ ALL RIGHTS RESERVED.
  4.  
  5. \  Users of ForthCMP are given permission to use or distribute this
  6. \  program, as long as no charge is made and the credit message is maintained.
  7.  
  8.  
  9.  
  10. 100 MSDOS
  11. SCONSTANT SDEFSTR SCR" \ SOURCE DEFAULTS TO .SCR 
  12. SCONSTANT DDEFSTR INX" \ DESTINATION  DEFAULTS TO .INX
  13. HEX 
  14. 6000 CONSTANT BUFSIZ   \ each i/o buffer is to be LARGE!
  15. DECIMAL
  16. INCLUDE FILTER
  17.  
  18. 1 1 IN/OUT
  19. : INDEX ( SCREEN# - VALID )
  20.   infile PAD 64 FREAD 64 <> IF DROP ( done ) 0 ELSE  
  21.     4 .R
  22.     SPACE
  23.     PAD 64 -TRAILING TYPE
  24.     CR
  25.         infile 1024 64 - 0 1 FSEEK 2DROP \ skip to next line zero
  26.     -1 ( return success )
  27.   THEN ; 
  28.  
  29. 0 0 IN/OUT 
  30. : NOTICE  
  31.     ." FORTH SCREEN INDEXING PROGRAM " CR
  32.     ." COPYRIGHT (C) 1985 BY THOMAS ALMY " CR 
  33.   ;
  34.  
  35. 0 0 IN/OUT 
  36. : USAGE   
  37.     CONSOLE CR
  38.     ." USAGE:  INDEX  [SCRFILE] [LISTFILE]" CR
  39.     ." where SCRFILE is a file of Forth screens (default extension SCR)" CR
  40.     ." and LISTFILE is file for index (default extension INX)" CR
  41.     ." If SCRFILE is not specified, standard input is used," CR
  42.     ." use `-' if listfile is to be specified." CR
  43.     ABORT
  44.   ;
  45.  
  46. : MAIN    
  47.         SETBUFS ( which allows I/O )
  48.     NOTICE  ( Welcome message )
  49.     SETFILES IF USAGE THEN ( open files, if possible )
  50.     OPTIONSTRING 2+ @ IF USAGE THEN ( any arg means bad syntax )
  51.     0 
  52.     BEGIN 
  53.         DUP INDEX
  54.     WHILE
  55.         1+ DUP 60 MOD 0= IF CR CR CR CR CR CR THEN 
  56.     REPEAT
  57.     DROP 
  58.     BYE 
  59.   ;
  60.  
  61. INCLUDE DOS2
  62. INCLUDE FORTHLIB
  63.  
  64. END
  65.  
  66.